package study.itwill.team5.main;

import java.util.ArrayList;

import study.itwill.common.DBHandler;
import study.itwill.team5.house.House;
import study.itwill.team5.house.HouseItem;
import study.itwill.team5.house.RoomItem;
import study.itwill.team5.house.TelItem;

/**
 * 민박 기능들을 실행하는 메인 클래스
 */
public class Main05 {
	public static void main(String[] args) {
		
		// 데이터베이스 제어 객체에 대한 참조
		DBHandler db = DBHandler.getInstance();
		
		String 	HOSTNAME = "127.0.0.1";	// 현재 내 컴퓨터
		int 	HOSTPORT = 3306;		// 기본 포트 번호
		String	DATABASE = "italia";	// Schema 이름
		String 	USERNAME = "samulman";		// 접속 계정 아이디
		String 	PASSWORD = "9878";	// 비밀번호
		String 	CHARSET = "utf8";		// 케릭터 셋
		
		db.setInfo(HOSTNAME, HOSTPORT, DATABASE, USERNAME, PASSWORD, CHARSET);
		db.connect();
		
		House house = new House();
		
		/** 1. 민박 입력 
		String[] telAdd = new String[] {"010-1234-1234", "010-1234-1235", "010-1234-1236"};
		String[] imageAdd = new String[] {"img/venezia01_01.jpg", "img/venezia01_02.jpg"};
		
		ArrayList<RoomItem> roomAdd = new ArrayList<RoomItem>();
		roomAdd.add(new RoomItem("도미토리 남", 6, 25, 30));
		roomAdd.add(new RoomItem("도미토리 여", 4, 25, 30));
		roomAdd.add(new RoomItem("2인실", 2, 80, 90));
		
		int seq = house.addHouse("베네치아 1호점", 1, "이탈리아", "베네치아", "121, San Marco", "산마르코광장 도보 5분거리", 
				"veneiza01@gmail.com", "http://www.vezezia01.com", "베네치아 1호점 많이 찾아주세요", telAdd, imageAdd, roomAdd);
		
		if(seq < 0) {
			System.out.println("민박 추가 실패");
		} else {
			System.out.println(seq + "번 민박 추가됨");
		}
		
		telAdd = new String[] {"010-2345-2345", "010-2345-2346"};
		imageAdd = new String[] {"img/venezia02_01.jpg", "img/venezia02_02.jpg", "img/venezia02_03.jpg"};
		
		roomAdd = new ArrayList<RoomItem>();
		roomAdd.add(new RoomItem("도미토리 남", 8, 25, 30));
		roomAdd.add(new RoomItem("도미토리 여", 6, 25, 30));
		roomAdd.add(new RoomItem("2인실", 2, 90, 100));
		roomAdd.add(new RoomItem("3인실", 3, 120, 150));
		
		seq = house.addHouse("베네치아 2호점", 1, "이탈리아", "베네치아", "232, Rialto", "리알토 도보 3분거리", 
				"veneiza02@gmail.com", "http://www.vezezia02.com", "베네치아 2호점 많이 찾아주세요", telAdd, imageAdd, roomAdd);
		
		if(seq < 0) {
			System.out.println("민박 추가 실패");
		} else {
			System.out.println(seq + "번 민박 추가됨");
		}
		
		telAdd = new String[] {"010-9999-9999"};
		imageAdd = new String[] {"img/roma01_01.jpg"};
		
		roomAdd = new ArrayList<RoomItem>();
		roomAdd.add(new RoomItem("가족실", 5, 200, 220));
		
		seq = house.addHouse("로마 1호점", 2, "이탈리아", "로마", "999, Termini", "테르미니역 도보 7분거리", 
				"roma01@gmail.com", "http://www.roma01.com", "로마 1호점 많이 찾아주세요", telAdd, imageAdd, roomAdd);
		
		if(seq < 0) {
			System.out.println("민박 추가 실패");
		} else {
			System.out.println(seq + "번 민박 추가됨");
		}
		
		System.out.println("---------------------------------------------------");*/
		
		
		/** 2. 민박 수정 
		
		String[] telEdit = new String[] {"010-3456-3456", "010-3456-3457", "010-3456-3458"};
		String[] imageEdit = new String[] {"img/venezia02_01.png", "img/venezia02_02.png"};
		
		ArrayList<RoomItem> roomEdit = new ArrayList<RoomItem>();
		roomEdit.add(new RoomItem("2인실", 2, 80, 90));
		roomEdit.add(new RoomItem("3인실", 3, 120, 130));
		roomEdit.add(new RoomItem("4인실", 3, 150, 160));
		
		boolean edit = house.editHouse(2, "베네치아 2호점", 1, "이탈리아", "베네치아", "232, Rialto", "리알토 도보 3분거리", 
				"veneiza02@gmail.com", "http://www.vezezia02.com", "베네치아 2호점 많이 찾아주세요", telEdit, imageEdit, roomEdit);
		
		if(edit == false) {
			System.out.println("민박 수정 실패");
		} else {
			System.out.println("민박 수정됨");
		}
		System.out.println("---------------------------------------------------");*/
		
		
		/** 3. 민박 삭제
		
		boolean delete = house.deleteHouse(2);
		
		if(delete == false) {
			System.out.println("민박 삭제 실패");
		} else {
			System.out.println("민박 삭제됨");
		}
		System.out.println("---------------------------------------------------"); */
		
		
		/** 4. 민박 조회
		
		// 2번 민박의 정보 조회
		HouseItem item = house.viewHouse(2);
		if(item == null) {
			System.out.println("조회된 데이터 없음");
		} else {
			System.out.println(item.toString());
		}
		
		// 2번 민박의 연락처 조회
		ArrayList<TelItem> telView = house.viewTel(2);
		if(telView == null) {
			System.out.println("조회된 연락처 데이터 없음");
		} else {
			for (int i=0; i<telView.size(); i++) {
				TelItem temp = telView.get(i);
				System.out.println(temp.toString());
			}
		}
		
		// 2번 민박의 이미지 조회
		ArrayList<ImageItem> imageView = house.viewImage(2);
		if(imageView == null) {
			System.out.println("조회된 이미지 데이터 없음");
		} else {
			for (int i=0; i<imageView.size(); i++) {
				ImageItem temp = imageView.get(i);
				System.out.println(temp.toString());
			}
		}
		
		// 2번 민박의 룸 조회
		ArrayList<RoomItem> roomView = house.viewRoom(2);
		if(roomView == null) {
			System.out.println("조회된 룸 데이터 없음");
		} else {
			for (int i=0; i<roomView.size(); i++) {
				RoomItem temp = roomView.get(i);
				System.out.println(temp.toString());
			}
		}
		
		System.out.println("---------------------------------------------------"); */
		
		/*
		 *  민박 검색을 위한 파라미터 정의
		 *  0, null : 민박 전체리스트 검색
		 *  		(전체리스트 검색은 오버로딩 정의로 숫자값 하나만을 파라미터로 받을수 있다)
		 *  1, null : 베네치아 민박 전체리스트 검색
		 *  		(전체리스트 검색은 오버로딩 정의로 숫자값 하나만을 파라미터로 받을수 있다)
		 *  2, null : 로마 민박 전체리스트 검색
		 *  		(전체리스트 검색은 오버로딩 정의로 숫자값 하나만을 파라미터로 받을수 있다)
		 *  11, "민박이름 검색"
		 *  12, "나라이름 검색"
		 *  13, "도시이름 검색"
		 *  14, "상세주소 검색"
		 *  15, "간단주소 검색"
		 *  16, "이메일 검색"
		 *  17, "홈페이지 검색"
		 *  18, "상세정보 검색"
		 
		ArrayList<HouseItem> list = house.listHouse(0);
		
		if(list == null) {
			System.out.println("조회된 데이터 없음");
		} else {
			for (int i=0; i<list.size(); i++) {
				HouseItem temp = list.get(i);
				System.out.println(temp.toString());
			}
		}
		System.out.println("---------------------------------------------------");*/
		
		// 접속해제
		db.disconnect();
	}
}
